package com.vepick.vue.interfaceClient;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Scanner;

import com.vepick.metier.lancement.Connexion;
import com.vepick.metier.requetes.Requetes_client;
import com.vepick.metier.requetes.Requetes_station;

/*
 * Interface d'acc�s aux services d'un client non abonn�
 */
public class InterfaceClientNonAbo {

	public static final int PRENDRE_UN_VELO = 1;
	public static final int RENDRE_UN_VELO = 2;
	public static final int CONSULTER_LES_STATIONS = 3;
	public static final int ABONNEMENT = 4;
	public static final int RETOUR = 5;
	public static final int QUITTER_APPLICATION = 99;

	public static void ouvrirInterfaceClientNonAbo(Connection conn) throws SQLException {

		// Variables locales n�cessaires au fonctionnement du programme
		@SuppressWarnings("resource")
		Scanner scanner = new Scanner(System.in);
		int choix = 0;

		// Traitement du choix du client
		while (choix != QUITTER_APPLICATION) {

			// Affichage des diff�rentes fonctionnalit�s
			afficherFonctionnalites();

			// Fonctionnalit� tapp�e par le client
			choix = scanner.nextInt();
			
			//Redirection vers l'interface choisie
			switch (choix) {
			case PRENDRE_UN_VELO:
				InterfacePrendreUnVeloTicket.ouvrirInterfacePrendreUnVeloTicket(conn);
				break;
			case RENDRE_UN_VELO:
				InterfaceRendreUnVeloTicket.ouvrirInterfaceRendreUnVeloTicket(conn);
				break;
			case CONSULTER_LES_STATIONS:
				Requetes_station.afficherLesStation(conn);
				break;
			case ABONNEMENT:
				Requetes_client.inscriptionAbo(conn);
				InterfaceClient.ouvrirInterfaceClient();
				break;
			case RETOUR:
				InterfaceClient.ouvrirInterfaceClient();
				break;
			case QUITTER_APPLICATION:
				try {
					conn.close();
					System.out.println("A bientot!");
					System.exit(0);
				} catch (SQLException e) {
					System.out
							.println("Erreur dans la fermeture de la connexion");
					System.exit(-1);
					e.printStackTrace();
				}
				break;
			default:
				break;
			}
		}
	}

	private static void afficherFonctionnalites() {
		System.out
				.println("#######################################################");
		System.out
				.println("#                 Client non abonne                   #");
		System.out
				.println("#######################################################");
		System.out.println("\n\n");
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Prendre un velo : " + PRENDRE_UN_VELO);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Rendre un velo : " + RENDRE_UN_VELO);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out
				.println("Consulter les stations : " + CONSULTER_LES_STATIONS);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("S'abonner a VePick : " + ABONNEMENT);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Retour a l'ecran principal : " + RETOUR);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Quitter l'application : " + QUITTER_APPLICATION);
	}
}
